'''
requests中的get、post封装
    自动管理cookie，session发送请求
    打印关键信息，方便定位问题
    异常处理
'''
import requests

class BaseRequests:
    # 构造方法
    def __init__(self):
        self.session = requests.session()  # 创建一个session

    def get(self, url, **kwargs):
        try:
            r = self.session.get(url, **kwargs)
            print(f"发送get请求，接口地址为：{url}，参数为：{kwargs}成功，响应信息为：{r.text}")
            return r
        except Exception as e:
            print(f"发送get请求，接口地址为：{url}，参数为：{kwargs}异常，异常信息为：{e}")

    def post(self, url, data=None, json=None, **kwargs):
        # data json  有默认值的参数，是局部变量
        try:
            #  data=data，前面data是session.post的参数名，后面的data是局部变量
            r = self.session.post(url, data=data, json=json, **kwargs)
            print(f"发送post请求，接口地址为：{url}，参数为：{data}{kwargs}成功，响应信息为：{r.text}")
            return r
        except Exception as e:
            print(f"发送post请求，接口地址为：{url}，参数为：{data}{kwargs}异常，异常信息为：{e}")


# 测试代码，用完可以删除
if __name__ == '__main__':
    br = BaseRequests()
    host = "http://192.168.124.16:8088/"
    url = host + "/futureloan/mvc/api/member/register"
    cs = {"mobilephone": "18012345678", "pwd": "", "regname": "hello"}
    br.get(url, params= cs)
    br.post(url, data=cs)
